package org.seamon.management.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.seamon.management.pojo.dto.MenuInsertDto;
import org.seamon.management.pojo.dto.MenuUpdateDto;
import org.seamon.management.pojo.entity.Menu;
import org.seamon.management.pojo.vo.MenuTreeVo;

import javax.validation.Valid;
import java.util.List;

/**
* @author Simon
* @description 针对表【sys_menu(菜单权限表)】的数据库操作Service
* @createDate 2025-07-11 00:31:54
*/
public interface MenuService extends IService<Menu> {
    /**
     * 获取菜单树
     *
     * @return
     */
    List<MenuTreeVo> tree();

    /**
     * 获取菜单树
     *
     * @return
     */
    List<MenuTreeVo> tree(Long roleId);

    /**
     * 保存菜单
     *
     * @param dto
     */
    void save(MenuInsertDto dto);

    /**
     * 修改菜单
     *
     * @param dto
     */
    void update(@Valid MenuUpdateDto dto);

    /**
     * 获取菜单名称列表
     *
     * @param menuIds
     * @return
     */
    List<String> getPermsByIds(List<Long> menuIds);
}
